#ifndef AIRMIDWVUDP_H
#define AIRMIDWVUDP_H

#include <QObject>
#include <qendian.h>

#include "udpbase.h"

// 空中帧数据结构
struct AirFrameData {
    quint32 frameNumber;          // 照片帧号
    QMap<quint32, QByteArray> slices;  // 存储切片数据，key为切片号
};

class AirMidWVUdp : public UdpBase
{
    Q_OBJECT
public:
    explicit AirMidWVUdp(QObject *parent = nullptr);

    void startProcess()override;

    void stopProcess()override;

    void setTargetFps(int fps)override;  // 设置目标编码帧率（fps）

    void processSlice(const QByteArray& data);

public slots:
    void onInitUdp()override;

    void onReceive();

private:
    AirFrameData m_frame;

    quint16 m_totalSlices = 512;

};

#endif // AIRMIDWVUDP_H
